package view; import java.util.Map.Entry; import java.awt.BorderLayout; import java.util.Iterator; import java.util.Set; import javax.swing.*; import javax.swing.table.DefaultTableModel; import model.Word; public class SearchView extends JFrame { private Set<Entry<Word, String>> words; private DefaultTableModel tableModel; private JScrollPane scrollPane; private JTable table; private Object[][] rows; private Object[] columns = { "Word", "Description" }; public SearchView(Set<Entry<Word, String>> words) { this.setTitle("Search"); this.setLocationRelativeTo(null); this.words = words; initializeTable(); this.pack(); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.setVisible(true); } private void initializeTable() { tableModel = new DefaultTableModel(rows, columns); table = new JTable(); table.setModel(tableModel); table.setEnabled(false); fillTable(); scrollPane = new JScrollPane(table); this.add(scrollPane, BorderLayout.NORTH); } private void fillTable() { if (words.size() != 0) { rows = new Object[words.size()][2]; Iterator<Entry<Word, String>> it = words.iterator(); while (it.hasNext()) { Entry<Word, String> newWord = it.next(); Object[] row = { newWord.getKey().getWord(), newWord.getValue() }; tableModel.addRow(row); } } } public void updateTable() { if (words.size() != 0) { tableModel = new DefaultTableModel(rows, columns); tableModel.setRowCount(0); table.setModel(tableModel); rows = new Object[words.size()][2]; Iterator<Entry<Word, String>> it = words.iterator(); while (it.hasNext()) { Entry<Word, String> newWord = it.next(); Object[] row = { newWord.getKey().getWord(), newWord.getValue() }; tableModel.addRow(row); } } } }